//    Copyright (C) Kherty.  All rights reserved.
using System.Windows;

namespace OpenLS.Drawing.UI
{
    public class DrawingElement: FrameworkElement
    {


        public static LineProperties GetLineProperties(DependencyObject obj)
        {
            return (LineProperties)obj.GetValue(LinePropertiesProperty);
        }

        public static void SetLineProperties(DependencyObject obj, LineProperties value)
        {
            obj.SetValue(LinePropertiesProperty, value);
        }

        // Using a DependencyProperty as the backing store for LineProperties.  This enables animation, styling, binding, etc...
        public static readonly DependencyProperty LinePropertiesProperty =
            DependencyProperty.RegisterAttached("LineProperties", typeof(LineProperties), typeof(DrawingElement), new FrameworkPropertyMetadata(null, FrameworkPropertyMetadataOptions.Inherits));




        public static ShapeProperties GetShapeProperties(DependencyObject obj)
        {
            return (ShapeProperties)obj.GetValue(ShapePropertiesProperty);
        }

        public static void SetShapeProperties(DependencyObject obj, ShapeProperties value)
        {
            obj.SetValue(ShapePropertiesProperty, value);
        }

        // Using a DependencyProperty as the backing store for ShapeProperties.  This enables animation, styling, binding, etc...
        public static readonly DependencyProperty ShapePropertiesProperty =
            DependencyProperty.RegisterAttached("ShapeProperties", typeof(ShapeProperties), typeof(DrawingElement), new FrameworkPropertyMetadata(null, FrameworkPropertyMetadataOptions.Inherits));



        public static FillProperties GetFillProperties(DependencyObject obj)
        {
            return (FillProperties)obj.GetValue(FillPropertiesProperty);
        }

        public static void SetFillProperties(DependencyObject obj, FillProperties value)
        {
            obj.SetValue(FillPropertiesProperty, value);
        }

        // Using a DependencyProperty as the backing store for FillProperties.  This enables animation, styling, binding, etc...
        public static readonly DependencyProperty FillPropertiesProperty =
            DependencyProperty.RegisterAttached("FillProperties", typeof(FillProperties), typeof(DrawingElement), new FrameworkPropertyMetadata(null, FrameworkPropertyMetadataOptions.Inherits));




        public static ColorScheme GetColorScheme(DependencyObject obj)
        {
            return (ColorScheme)obj.GetValue(ColorSchemeProperty);
        }

        public static void SetColorScheme(DependencyObject obj, ColorScheme value)
        {
            obj.SetValue(ColorSchemeProperty, value);
        }

        // Using a DependencyProperty as the backing store for ColorScheme.  This enables animation, styling, binding, etc...
        public static readonly DependencyProperty ColorSchemeProperty =
            DependencyProperty.RegisterAttached("ColorScheme", typeof(ColorScheme), typeof(DrawingElement), 
            new FrameworkPropertyMetadata(null, FrameworkPropertyMetadataOptions.Inherits));


        public static Theme GetTheme(DependencyObject obj)
        {
            return (Theme)obj.GetValue(ThemeProperty);
        }

        public static void SetTheme(DependencyObject obj, Theme value)
        {
            obj.SetValue(ThemeProperty, value);
        }

        // Using a DependencyProperty as the backing store for Theme.  This enables animation, styling, binding, etc...
        public static readonly DependencyProperty ThemeProperty =
            DependencyProperty.RegisterAttached("Theme", typeof(Theme), typeof(FrameworkElement), new FrameworkPropertyMetadata(null, FrameworkPropertyMetadataOptions.Inherits));




        public static FontScheme GetFontScheme(DependencyObject obj)
        {
            return (FontScheme)obj.GetValue(FontSchemeProperty);
        }

        public static void SetFontScheme(DependencyObject obj, FontScheme value)
        {
            obj.SetValue(FontSchemeProperty, value);
        }

        // Using a DependencyProperty as the backing store for FontScheme.  This enables animation, styling, binding, etc...
        public static readonly DependencyProperty FontSchemeProperty =
            DependencyProperty.RegisterAttached("FontScheme", typeof(FontScheme), typeof(DrawingElement), new FrameworkPropertyMetadata(null, FrameworkPropertyMetadataOptions.Inherits));


            

    }
}
